package com.qf.hsr.controller;

import com.alibaba.fastjson.annotation.JSONField;
import com.qf.hsr.pojo.User;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Date;

/**
 * @author q
 * @version V1.0
 * @date 2021/11/11
 **/
@Controller
public class Demo01Controller {

    private static final String SUCCESS = "success";

    /**
     * @RequestParam : 封装请求参数
     *    name : 请求参数名
     *    required : 参数是否必须，默认值就是true
     *    defaultValue : 当参数没有值时，使用默认值
     */
    @RequestMapping("/test01")
    public String test01(@RequestParam(name = "myAge", required = true, defaultValue = "0") int age, String name){
        System.out.println(name + ":" + age);
        //int i = 1/0;
        return SUCCESS;
    }

    /**
     * 默认接收的Date类型参数为 yyyy/MM/dd HH:mm:ss
     *  如果格式不一致，可以使用 @DateTimeFormat(pattern = "你想要的时间格式") 标记时间参数。
     *      一旦使用 @DateTimeFormat指定时间格式后，那么必须严格按照这种时间格式来传参
     */
    @RequestMapping("/test02")
    public String test02(@JSONField(format = "yyyy-MM-dd") Date birth){
        System.out.println("birth = " + birth);
        return SUCCESS;
    }

    @RequestMapping("/test03")
    public String test03(User user){
        System.out.println(user);
        return SUCCESS;
    }

    @RequestMapping("/test51")
    public @ResponseBody User test51(@RequestBody User user){
        System.out.println(user);
        user.setUserId(16);
        user.setUsername("lucy");
        user.setBirth(new Date());
        return user;
    }


}
